<template>

</template>

<script>
  import qs from 'qs';
  import moment from "moment"
  const serverSrc = "http://127.0.0.1:8081";
  export default {
    /*全局变量*/
    serverSrc,//服务器地址

    /*全局函数*/
    install(Vue) {
      /**
       * 加载框
       * @param content 加载标题
       * @returns {*}
       */
      Vue.prototype.showLoadingDialog = function (content) {
        return this.$loading({
          lock: false,
          text: content,
          spinner: 'el-icon-loading',
          background: 'rgba(0, 0, 0, 0.7)'
        });
      }

      /**
       * 请求方法
       * @param method 请求类型
       * @param url 请求接口
       * @param msg 参数
       * @param isLogin 是否为登陆
       * @param loading 加载框
       * @returns {*}
       */
      Vue.prototype.sendAxios = function (method, url, msg, isLogin, loading) {
        return axios({
          method: method,
          url: serverSrc + url,
          data: qs.stringify(msg),
          headers: this.getHeaders(isLogin)
        }).catch((e) => {
          loading.close();
          if (e.response.data.error == "invalid_token") {
            localStorage.setItem("token", "");
            this.$router.push({path: '/login'});
            this.alert("error", "token失效，请重新登陆！")
            return
          }
          this.alert("error", "接口异常，请联系管理员！")
        });
      };

      Vue.prototype.showMessageBox = function (content, title, msg) {
        return this.$confirm(content, title, {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        });
      }

      /**
       * 判断key是否存在
       * @param key localStorage的Key
       * @returns {boolean}
       */
      Vue.prototype.isStorage = function (key) {
        if (localStorage.hasOwnProperty(key)) {
          var con = localStorage.getItem(key);
          if (con == "") {
            return false;
          } else {
            return true;
          }
        } else {
          return false;
        }
      }
      /**
       * 消息提示弹窗
       * @param type 弹窗类型  success（成功）、 warning（警告）、error（错误）
       * @param msg 提示内容
       * @returns {*}
       */
      Vue.prototype.alert = function (type, msg) {
        if (type == "error") {
          return this.$message.error(msg);
        }
        return this.$message({
          message: msg,
          type: type
        });
      };

      Vue.prototype.getTime = function (date) {
          if (date == undefined) {
              return "";
          }
          return moment(parseInt(date)).format("YYYY-MM-DD");
      }

      Vue.prototype.computeTime = function (year, month){
          return new Date(year, month - 1, 1).getTime()
      }
    }
  }
</script>

<style scoped>

</style>
